[c语言]检测 2种键盘输入,这样行不行呢

来源:百度知道 编辑:UC知道 时间:2024/05/08 14:23:06
第一种hello 0 0 a
第二种.

if(scanf("%s %d %d %c",&word,&row,&col,&orientation) == 4){

}else{
if(getchar()!=‘.’)printf(“输入有误”);
}
感谢levin_1
liujq007
修正后如下
int input = scanf("%s %d %d %c",word,&row,&col,&orientation);
if(input == 4){

}else if ( (input == 1) && (strncmp(word,".") == 0) ){
}else{
printf(“输入有误”);
}

scanf返回的是你正确输入变量的数目,如果你输入hello 0 a 0
那么word就得到了正确的值,row也得到了正确的,col得到了错误的,那么后面的orientation就得不到值了,那么scanf的返回值是2.
如果只有你所说的这两种输入,而没有其他错误的输入的话,你的程序的逻辑是可以的

word是字符串(字符数组),%s就不需要用&

if(scanf("%s %d %d %c",word,&row,&col,&orientation) == 4){

}else{
if(getchar()!=‘.’)printf(“输入有误”);
}

...strcmp

还有你的双引号和单引号貌似都是圆角的吧?